{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 关于打破对称性"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "想象一下你在做一个团队项目，团队里有几个成员，每个人都负责不同的任务。如果每个人都做完全相同的事情（比如都写同样的代码），那么这个团队的效率就会很低，因为大家的工作没有区别，无法发挥各自的特长。\n",
    "\n",
    "在神经网络中，尤其是多层感知机（MLP），每一层就像是团队中的一个成员。如果这些层的“工作”完全相同（比如它们的权重参数都一样），那么它们就会学习到相似的东西，导致整个网络的表现不佳。这就是所谓的“对称性问题”。\n",
    "\n",
    "为了避免这种情况，我们希望每一层能够学习到不同的特征，就像团队中的每个成员都能发挥自己的特长。我们可以通过以下方法来打破这种对称性：\n",
    "\n",
    "**随机初始化权重**:在开始训练之前，我们给每一层的权重设置不同的初始值，这样它们就不会完全相同。\n",
    "\n",
    "**调整学习过程**:在训练过程中，确保每一层能够接收到不同的信息和反馈，这样它们就能独立学习。\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 参数初始化"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "解决（或至少减轻）上述问题的一种方法是进行参数初始化，优化期间的注意和适当的正则化也可以进一步\n",
    "提高稳定性。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "深度学习框架通常实现十几种不同的启发式方法。此外，\n",
    "参数初始化一直是深度学习基础研究的热点领域。</br>其中包括专门用于参数绑定（共享）、超分辨率、序列模型\n",
    "和其他情况的启发式算法。</br>例如，Xiao等人演示了通过使用精心设计的初始化方法 (Xiao et al., 2018)，可以\n",
    "无须架构上的技巧而训练10000层神经网络的可能性。\n",
    "如果有读者对该主题感兴趣，我们建议深入研究本模块的内容"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"[Xiao et al., 2018] Xiao, L., Bahri, Y., Sohl‐Dickstein, J., Schoenholz, S., & Pennington, J. (2018). Dynamical\n",
    "isometry and a mean field theory of cnns: how to train 10,000‐layer vanilla convolutional neural\n",
    "networks. International Conference on Machine Learning (pp. 5393–5402).\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
